From: | Andreas Mixich |
Date: | 24 May 2000 at 21:31:11 |
Subject: | strange GoldED macro behaviour |
Hello,
I just updated my test macro for my GoldED ARexx setup. It worked for years,
now I added features and earn bugs :-)
/**/
OPTIONS RESULTS /* enable return codes */
if (LEFT(ADDRESS(), 6) ~= "GOLDED") then /* not started by GoldEd ? */
address 'GOLDED.1'
'LOCK CURRENT RELEASE 4' /* lock GUI, gain access */
OPTIONS FAILAT 6 /* ignore warnings */
SIGNAL ON SYNTAX /* ensure clean exit */
SIGNAL ON ERROR
***2* see text in mail below
argstemplate = "MODE"
/* add the needed libraries */
IF ~SHOW('LIBRARIES','rexxdossupport.library') THEN
CALL ADDLIB('rexxdossupport.library',0,-30,0)
'QUERY DOC VAR OLDNAME'
'QUERY FILE VAR FILENAME'
'QUERY ABAK VAR AUTOBACK'
'QUERY BACKUP VAR BACKEN'
'SET ABAK 0'
'SET BACKUP 0'
'QUERY AREXX_MAKE_TEST VAR TEST'
'QUERY AREXX_MAKE_COMPILE VAR COMPILE'
'QUERY AREXX_MAKE_MAKE VAR MAKE'
'QUERY AREXX_MAKE_ISCOM VAR ISCOM'
'QUERY AREXX_MAKE_ISFUNC VAR ISFUNC'
'QUERY AREXX_TRACE_ALL VAR TR_ALL'
'QUERY AREXX_TRACE_BACKGROUND VAR TR_BACKROUND'
'QUERY AREXX_TRACE_COMMANDS VAR TR_COMMANDS'
'QUERY AREXX_TRACE_ERRORS VAR TR_ERRORS'
'QUERY AREXX_TRACE_INTERMEDIATES VAR TR_INTER'
'QUERY AREXX_TRACE_LABELS VAR TR_LABELS'
'QUERY AREXX_TRACE_NORMAL VAR TR_NORMAL'
'QUERY AREXX_TRACE_RESULTS VAR TR_RESULTS'
'QUERY AREXX_TRACE_SCAN VAR TR_SCAN'
'QUERY AREXX_TRACE_INTERACTIVE VAR TR_INTERACTIVE'
'QUERY AREXX_TRACE_INHIBIT VAR TR_INHIBIT'
SELECT
WHEN TR_ALL = TRUE THEN tracemode = "A"
WHEN TR_BACKGROUND = TRUE THEN tracemode = "B"
WHEN TR_COMMANDS = TRUE THEN tracemode = "C"
WHEN TR_ERRORS = TRUE THEN tracemode = "E"
WHEN TR_INTER = TRUE THEN tracemode = "I"
WHEN TR_LABELS = TRUE THEN tracemode = "L"
WHEN TR_NORMAL = TRUE THEN tracemode = "N"
WHEN TR_RESULTS = TRUE THEN tracemode = "R"
WHEN TR_SCAN = TRUE THEN tracemode = "S"
OTHERWISE tracemode = "O"
END
IF TR_INHIBIT = TRUE THEN tracemode = Insert(tracemode,'!',1)
IF TR_INTERACTIVE = TRUE THEN tracemode = Insert(tracemode,'?',1)
SELECT
WHEN test = TRUE THEN
DO
'REQUEST STRING TITLE = "Testing..." BODY = "Please enter arguments empty string if none are needed" VAR ARGUM'
IF RC = 5 THEN
SIGNAL CLEANUP
'SAVE ALL EXPORT NAME "t:'||filename||'"'
CALL backupon
com = Strip('t:'||filename||' '||argum)
CALL Trace(tracemode)
ADDRESS COMMAND 'rx '||com
END
[...]
OTHERWISE
NOP
END
CLEANUP:
ADDRESS GOLDED.1
IF arexx_make_compile = TRUE THEN CALL Close(f)
CALL backupon
'UNLOCK'
CALL Trace(OFF)
EXIT
backupon:
'SET ABAK '||AUTOBACK
'SET BACKUP '||BACKEN
RETURN
SYNTAX:
ERROR:
FAILURE:
ADDRESS GOLDED.1
CALL backupon ***2* see mailtest below
SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
'UNLOCK'
CALL Trace(OFF)
EXIT
---------------------------------------------------------------EOF
**** so, there, where I put the stars, if I select "CANCEL" on the GED
requester, I get an undiagnosed error ?! But only if SIGNAL ON FAILURE
is set ! And the strange thing is, that the result of the requester, if
cancelled is RC=5, but OPTIONS FAILAT 6, so the RC=5 should not cause
problems.
In former versions of the script it worked, though there I did not set
SIGNAL ON FAILURE.
If, however I do not set SIGNAL ON FAILURE, and cancel the requester I get an undiagnosed error in the line with ***2*, where I call backupon:
------------------------------------------------------------------------
Failed tests, classes skipped, forgotten locker combinations.
Remember the good 'ol days
http://click.egroups.com/1/4053/8/_/50156/_/959114706/
------------------------------------------------------------------------
ARexx mailing list - No flames, no overquoting, no crossposting. Unsubscribe: Blank mail to mailto:arexx-unsubscribe@onelist.com